package scene.manager;

import device.graphics.GraphicsDevice;
import device.input.InputDevice;


/**
 * シーンインターフェース
 *
 * @author function
 */
public abstract class IScene
{
	protected SceneMediator m_mediator;

	public IScene( SceneMediator mediator )
	{
		m_mediator = mediator;
	}

	/**
	 * 初期化
	 */
	public abstract void initialize();

	/**
	 * 更新処理
	 *
	 * @param inputDevice 入力デバイス
	 */
	public abstract void update( InputDevice inputDevice );

	/**
	 * 描画
	 *
	 * @param graphicsDevice グラフィックデバイス
	 */
	public abstract void draw( GraphicsDevice graphicsDevice );

	/**
	 * 終了
	 */
	public abstract void finish();
}